Software defined networks (SDN) has emerged, and open flow is one of the prominent representatives. Incoming packets go through series of table searches and match actions, and analytics. Good abstraction in network switches are of paramount importance as it allows for efficient usage of limited hardware resource, dealing with changing requirements, as well as simplicity of programming in the next higher level.
Counters, two-rate three-color rate monitors (policing) and flow sampling exists in prior art network switches. The prior art network switches use dedicated memory for each of these purposes. Particularly, these counters, rate monitors and samplers are accessible from certain fixed stages of an internal pipeline since each processing unit of the internal pipeline is predefined to perform designated tasks. Counters are used to count number of packets, or bytes of traffic in various conditions through the switch. Policing classifies packet through the switch into three different colors, namely, green, yellow or red, each of which may be associated with a different quality of service. Sampling samples a high speed flow of traffic into a lower speed stream and send to system CPU for additional processing or analyzing. Accordingly, the prior art network switches lack the flexibility to perform counting, traffic rate monitoring and flow sampling.